home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Shareware World / Info / For Developers / Smile1.6.6.sea / Smile1.6.6 / Smile ƒ / Help files / Advanced script handling < prev    next >
Text File  |  1999-07-19  |  3KB  |  65 lines

  1. Advanced script handling
  2.  
  3.  
  4. Making a script with a script
  5.  
  6. Smile provides tools for dynamical editing of scripts - in other terms, for creating / editing a script ... by script. First of them, the coercions between script and text.
  7. ----------------------------
  8. set script of window 1 to "-- aargh !"
  9. ----------------------------
  10.  
  11. You may also want to use the "script of" command, applied to a file reference.
  12. ----------------------------
  13. script of theFile as text --> returns the script contained in theFile
  14. ----------------------------
  15.  
  16. Note the use of "script of". Use "script of theFile" (instead of "load script" and "store script") to read scripts as text,  and use "LoadResource / PutResource" if you want to manipulate scripts. See Satimage osax for these commands.
  17.  
  18.  
  19. Handling scripts as objects
  20.  
  21. Scripts behave most like objects, with the (virtual) following dictionary :
  22.  
  23. Class script : 
  24. Elements:
  25.     variable by numeric index, name
  26.     handler by numeric index, name
  27. Properties:
  28.     container reference [r/o] --    the object containing the script
  29.     parent script [r/o] --    the parent script
  30.  
  31. The container property exists for the scripts attached to some Smile object.
  32.  
  33. Here are some examples.
  34. ----------------------------
  35. name of handlers of class script of window 1
  36. ----------------------------
  37. name of every variable of globals
  38. ----------------------------
  39. handler "MaxInList" of class script of window 1 as text
  40. ----------------------------
  41.  
  42.  
  43. Creating object classes
  44.  
  45. Smile lets you create dynamically (i.e., with a script) classes, attach class scripts to them, and thus build hierarchical systems.
  46.  
  47. For example, suppose you want a special class for Internet-aware text windows. "Internet" should contain Internet-oriented handlers. Save it in the "Class Scripts" folder. Add the following line in the InitAppli() handler of the "Application" script to give it a signature. (the four-characters code is up to you).
  48. ----------------------------
  49. make new class script with properties {class script:"INet", parent:text window, path name:"Internet"}
  50. ----------------------------
  51.  
  52. Then use the following block to create each Internet-aware text window.
  53. ----------------------------
  54. set theWind to make new text window with properties {class script:"INet"}
  55. ----------------------------
  56.  
  57. Once saved, the window will keep memory of its class script.
  58.  
  59. To build a hierarchy, you will use the "parent" property. Suppose you want to derive a class of text windows from "INet" windows :
  60. ----------------------------
  61. make new class script with properties {class script:"html", parent:"INet", path name:"WebLib"}
  62. ----------------------------
  63.  
  64. ========================================================
  65.